using UnityEngine;

// 游戏数据管理器，用于保存和加载游戏数据
public class SaveGameManager : MonoBehaviour
{
    // 当前的游戏数据
    public static SaveData data;

    // Awake() 方法在对象被创建时调用
    private void Awake()
    {
        data = new SaveData(); // 创建一个新的游戏数据对象
        SaveLoad.OnLoadGame += LoadData; // 注册读取游戏数据的事件
    }

    // 删除所有游戏数据
    public void DeleteData()
    {
        SaveLoad.DeleteSaveData(); // 调用静态方法，删除保存的游戏数据
    }

    // 保存游戏数据
    public static void SaveData()
    {
        var saveData = data; // 获取当前的游戏数据对象
        SaveLoad.Save(saveData); // 调用静态方法，保存游戏数据
    }

    // 加载游戏数据的回调函数
    public static void LoadData(SaveData _data)
    {
        data = _data; // 将读取的游戏数据赋值给当前的游戏数据对象
    }

    public static void TryLoadData()
    {
        SaveLoad.Load();
    }
}
